package com.navinfo.platform.trip.common.arithmetic.data;


import com.navinfo.platform.trip.common.arithmetic.*;
import com.navinfo.platform.trip.common.enums.ProtocolEnum;
import com.navinfo.platform.trip.common.pojo.TripInfo;
import com.navinfo.platform.trip.common.util.ArithmeticUtils;
import com.navinfo.platform.trip.common.util.BigDecimalUtils;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
 * 输出的行程统计模型，所有车厂的全量字段
 * @author web
 */
@Data
public class OuterStatisticData implements Serializable {
    /**
     * 终端唯一标识
     **/
    private Long uid;
    /**
     * 终端号
     **/
    private Long tid;
    /**
     * 行程ID
     **/
    private Integer tripId;
    /**
     * 行程所在的日期，格式 YYYYMMDD
     */
    private String day;

    /**
     * 车辆行程开始时间，单位：秒s<br/>
     * 取0200的第一个有效点
     **/
    private Long routeStartTime;
    /**
     * 行程开始时所在区域编号<br/>
     * 由{@link TripInfo#getStartLatitude()}{@link TripInfo#getStartLongitude()}计算得来
     **/
    private Integer routeStartLc;
    /**
     * 车辆行程开始纬度 以度为单位的纬度值乘以 10 的 6 次方，精确到百万分之一度<br/>
     * 取0200的第一个有效点
     **/
    private Integer routeStartLatitude;
    /**
     * 车辆行程开始经度 以度为单位的纬度值乘以 10 的 6 次方，精确到百万分之一度<br/>
     * 取0200的第一个有效点
     **/
    private Integer routeStartLongitude;
    /**
     * 车辆行程开始高程 单位:M<br/>
     * 取0200的第一个有效点
     **/
    private Integer routeStartHeight;
    /**
     * 车辆行程开始方向0-359正北为0顺时针<br/>
     * 取0200的第一个有效点
     **/
    private Integer routeStartDirection;
    /**
     * 行程开始车辆总里程 单位:M<br/>
     * 取0200的第一个有效点的标准总里程
     **/
    private Integer routeStartMileage;
    /**
     * 行程开始车辆总油耗 单位:ML
     * 取0200的第一个有效点的标准总油耗
     **/
    private Integer routeStartFuel;

    /**
     * 车辆行程结束时间，单位：秒s<br/>
     * 取0200的最后一个有效点
     **/
    private Long routeEndTime;
    /**
     * 行程结束时所在区域编号
     * 由{@link TripInfo#getEndLatitude()}{@link TripInfo#getEndLongitude()}  计算得来
     **/
    private Integer routeEndLc;
    /**
     * 车辆行程结束纬度 以度为单位的纬度值乘以 10 的 6 次方，精确到百万分之一度<br/>
     * 取0200的最后一个有效点
     **/
    private Integer routeEndLatitude;
    /**
     * 车辆行程结束经度 以度为单位的纬度值乘以 10 的 6 次方，精确到百万分之一度<br/>
     * 取0200的最后一个有效点
     **/
    private Integer routeEndLongitude;
    /**
     * 车辆行程结束高程 单位:M<br/>
     * 取0200的最后一个有效点
     **/
    private Integer routeEndHeight;
    /**
     * 车辆行程结束方向0-359正北为0顺时针<br/>
     * 取0200的最后一个有效点
     **/
    private Integer routeEndDirection;
    /**
     * 行程结束车辆总里程 单位:M<br/>
     * {@link OuterStatisticData#routeStartMileage}+{@link OuterStatisticData#tripMileage}
     **/
    private Integer routeEndMileage;
    /**
     * 行程结束车辆总油耗 单位:ML<br/>
     * {@link OuterStatisticData#routeStartFuel}+{@link OuterStatisticData#tripFuel}
     **/
    private Integer routeEndFuel;

    /**
     * 行程内积分里程，单位:M<br/>
     * {@link Mileage}计算得来
     **/
    private Integer routeIntegralMileage;
    /**
     * 行程内积分油耗，单位:ML<br/>
     *  {@link Mileage}计算得来
     **/
    private Integer routeIntegralFuel;
    /**
     * 行程内积分时长（引擎工作时长），单位:S
     *  {@link Mileage}计算得来
     **/
    private Integer routeIntegralDuration;

    /**
     * 行程内精准里程，单位:M<br/>
     * 流计算：根据0200精准的行程内里程<br/>
     * 批计算：（该行程0200的精准里程/当天所有行程的精准里程和）* 根据0200点精准的当天总里程
     **/
    private Integer tripMileage;
    /**
     * 行程内精准油耗，单位:ML<br/>
     * 流计算：根据0200精准的行程内油耗<br/>
     * 批计算：(该行程0200的精准油耗/当天所有行程的精准油耗和）* 根据0200点精准的当天总油耗
     **/
    private Integer tripFuel;
    /**
     * 行程内精准时长，单位:秒S
     * 据0200结果精准后的行程内时长，单位:秒 （行程结束时间-开始时间）
     * {@link OuterStatisticData#routeEndTime}-{@link OuterStatisticData#routeStartTime}
     **/
    private Integer tripDuration;
    /**
     * 行程消耗功率 单位: KW/H<br/>
     *  {@link TripPower}计算得来
     **/
    private Integer tripPower;

    /**
     * 行程数据切分类型{@link ProtocolEnum#getType()}
     *  1:基于0f37数据来生成的事件 2:根据0200数据来统计的行程
     **/
    private Integer sourceType;
    /**
     * 是否精准里程油耗 1:精准 0:未精准<br/>
     **/
    private Integer preciseFlag;
    /**
     * 行程结束标识 0:行程未结束，1:行程结束，2:行程强制结束 <br/>
     **/
    private Integer routeStopFlag;
    /**
     * 行程跨天标识<br/>
     * 离线计算：0，不跨天；1，一天中的第一个行程跨天； 2，一天中的最后一个行程跨天；<br/>
     * 实时计算：0，不跨天；1，跨天；<br/>
     **/
    private Integer crossDayFlag;
    /**
     * 跨天行程的前段信息<br/>
     * 实时计算使用
     */
    private InterCrossDay interCrossDay;

    /**
     * 制动次数<br/>
     * {@link Brake}计算得来
     **/
    private Integer brakeNumber;
    /**
     * 制动里程 单位:M<br/>
     * {@link Brake}计算得来
     **/
    private Integer brakeMileage;
    /**
     * 制动时长 单位:S<br/>
     * {@link Brake}计算得来
     **/
    private Integer brakeDuration;

    /**
     * 在挡滑行里程 单位:M<br/>
     * {@link CoastInGear}计算得来
     **/
    private Integer inGearCoastMileage;
    /**
     * 在挡滑行时长 单位：秒<br/>
     * {@link CoastInGear}计算得来
     **/
    private Integer inGearCoastDuration;
    /**
     * 在挡滑行次数<br/>
     * {@link CoastInGear}计算得来
     **/
    private Integer inGearCoastNumber;

    /**
     * 空挡滑行时长 单位：秒<br/>
     * {@link CoastNeutralGear}计算得来
     **/
    private Integer neutralGearCoastDuration;
    /**
     * 空挡滑行油耗 单位:ML<br/>
     * {@link CoastNeutralGear}计算得来
     **/
    private Integer neutralGearCoastFuel;
    /**
     * 空挡滑行里程 单位:M<br/>
     * {@link CoastNeutralGear}计算得来
     **/
    private Integer neutralGearCoastMileage;
    /**
     * 空挡滑行次数<br/>
     * {@link CoastNeutralGear}计算得来
     **/
    private Integer neutralGearCoastNumber;

    /**
     * 怠速油耗 单位:ML<br/>
     * {@link IdleParking}计算得来
     **/
    private Integer idleFuel;
    /**
     * 怠速时长 单位:S<br/>
     * {@link IdleParking}计算得来
     **/
    private Integer idleDuration;
    /**
     * 怠速次数<br/>
     * {@link IdleParking}计算得来
     **/
    private Integer idleNumber;

    /**
     * 停车通电时长 单位:S<br/>
     * {@link ParkingPowerOn}计算得来
     **/
    private Integer parkingPowerOnDuration;

    /**
     * 城市行驶里程 单位:M<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer cityDrivingMileage;
    /**
     * 城市行驶油量 单位:ML<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer cityDrivingFuel;
    /**
     * 城市行驶时长 单位:S<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer cityDrivingDuration;
    /**
     * 非城市行驶里程 单位:M<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer ruralDrivingMileage;
    /**
     * 非城市行驶油量 单位:ML<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer ruralDrivingFuel;
    /**
     * 非城市行驶时长 单位:S<br/>
     * {@link DrivingCity}计算得来
     **/
    private Integer ruralDrivingDuration;

    /**
     * 经济行驶里程 单位:M<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoDrivingMileage;
    /**
     * 经济行驶油量 单位:ML<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoDrivingFuel;
    /**
     * 经济行驶时长 单位:S<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoDrivingDuration;

    /**
     * 上坡行驶距离 单位:M<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer upSlopeDrivingMileage;
    /**
     * 上坡行驶油量 单位:ML<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer upSlopeDrivingFuel;
    /**
     * 上坡行驶时长 单位:S<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer upSlopeDrivingDuration;
    /**
     * 下坡行驶距离 单位:M<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer downSlopeDrivingMileage;
    /**
     * 下坡行驶油量 单位:ML<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer downSlopeDrivingFuel;
    /**
     * 下坡行驶时长 单位:S<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer downSlopeDrivingDuration;
    /**
     * 平路行驶距离 单位:M<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer levelRoadDrivingMileage;
    /**
     * 平路行驶油量 单位:ML<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer levelRoadDrivingFuel;
    /**
     * 平路行驶时长 单位:S<br/>
     * {@link DrivingSlope}计算得来
     **/
    private Integer levelRoadDrivingDuration;

    /**
     * 定速巡航里程 单位:M<br/>
     * {@link CruiseControl}计算得来
     **/
    private Integer cruiseMileage;
    /**
     * 定速巡航油量 单位:ML<br/>
     * {@link CruiseControl}计算得来
     **/
    private Integer cruiseFuel;
    /**
     * 定速巡航时长 单位:S<br/>
     * {@link CruiseControl}计算得来
     **/
    private Integer cruiseDuration;

    /**
     * 换挡次数<br/>
     * {@link Gear}计算得来
     **/
    private Integer shiftGearsNumber;

    /**
     * 激烈减速(急减速)距离 单位:M<br/>
     * {@link SharpDeceleration}计算得来
     **/
    private Integer sharpDownSpeedMileage;
    /**
     * 激烈减速(急减速)时长 单位: S<br/>
     * {@link SharpDeceleration}计算得来
     **/
    private Integer sharpDownSpeedDuration;
    /**
     * 激烈减速(急减速)次数<br/>
     * {@link SharpDeceleration}计算得来
     **/
    private Integer sharpDownSpeedNumber;

    /**
     * 激烈加速(急加速)距离 单位:M<br/>
     * {@link SharpAcceleration}计算得来
     **/
    private Integer sharpUpSpeedMileage;
    /**
     * 激烈加速(急加速)油耗 单位:ML<br/>
     * {@link SharpAcceleration}计算得来
     **/
    private Integer sharpUpSpeedFuel;
    /**
     * 激烈加速(急加速)时长 单位: S<br/>
     * {@link SharpAcceleration}计算得来
     **/
    private Integer sharpUpSpeedDuration;
    /**
     * 激烈加速(急加速)次数<br/>
     * 如果只有0200点由{@link NumberBy0200}计算得来
     * 如果有0F37点由{@link SharpAcceleration}计算得来
     **/
    private Integer sharpUpSpeedNumber;

    /**
     * 急踩油门行驶距离 单位:M<br/>
     * {@link GasSharp}计算得来
     **/
    private Integer sharpStepOnGasMileage;
    /**
     * 急踩油门油量 单位:ML<br/>
     * {@link GasSharp}计算得来
     **/
    private Integer sharpStepOnGasFuel;
    /**
     * 急踩油门时长 单位: S<br/>
     * {@link GasSharp}计算得来
     **/
    private Integer sharpStepOnGasDuration;
    /**
     * 急踩油门次数<br/>
     * {@link GasSharp}计算得来
     **/
    private Integer sharpStepOnGasNumber;

    /**
     * 车辆停车次数<br/>
     * {@link CarStop}计算得来
     **/
    private Integer vehicleParkNumber;

    /**
     * 车辆起步里程 单位:M<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleStartMileage;
    /**
     * 车辆起步耗油量 单位:ML<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleStartFuel;
    /**
     * 车辆起步时长 单位: S<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleStartDuration;
    /**
     * 车辆启步次数<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleStartNumber;
    /**
     * 冷车起步累计里程 单位:M<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleColdStartMileage;
    /**
     * 冷车起步耗油量 单位:ML<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleColdStartFuel;
    /**
     * 冷车起步时长 单位: S<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleColdStartDuration;
    /**
     * 冷车启步次数<br/>
     * {@link CarStart}计算得来
     **/
    private Integer vehicleColdStartNumber;

    /**
     * 加油量百分比 单位:百分比，范围:0~100<br/>
     * {@link FuelChange}计算得来
     **/
    private Integer chargeFuelPercent;
    /**
     * 加油数量 单位:ML<br/>
     * {@link FuelChange}计算得来
     **/
    private Integer chargeFuel;
    /**
     * 漏油量百分比 单位:百分比，范围:0~100<br/>
     * {@link FuelChange}计算得来
     **/
    private Integer leakFuelPercent;
    /**
     * 漏油数量 单位:ML<br/>
     * {@link FuelChange}计算得来
     **/
    private Integer leakFuel;

    /**
     * 油门稳定性次数<br/>
     * {@link GasSteady}计算得来
     **/
    private Integer gasStabilityNumber;
    /**
     * 油门稳定性时长 单位:S<br/>
     * {@link GasSteady}计算得来
     **/
    private Integer gasStabilityDuration;

    /**
     * 车速区间01(0-10KM/H)累计里程 单位: M<br/>
     **/
    private Integer speedRange01Mileage;
    /**
     * 车速区间01(0-10KM/H)累计时长 单位:S
     **/
    private Integer speedRange01Duration;
    /**
     * 车速区间01(0-10KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange01Fuel;
    /**
     * 车速区间02(10-20KM/H)累计里程 单位: M
     **/
    private Integer speedRange02Mileage;
    /**
     * 车速区间02(10-20KM/H)累计时长 单位:S
     **/
    private Integer speedRange02Duration;
    /**
     * 车速区间02(10-20KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange02Fuel;
    /**
     * 车速区间03(20-30KM/H)累计里程 单位: M
     **/
    private Integer speedRange03Mileage;
    /**
     * 车速区间03(20-30KM/H)累计时长 单位:S
     **/
    private Integer speedRange03Duration;
    /**
     * 车速区间03(20-30KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange03Fuel;
    /**
     * 车速区间04(30-40KM/H)累计里程 单位: M
     **/
    private Integer speedRange04Mileage;
    /**
     * 车速区间04(30-40KM/H)累计时长 单位:S
     **/
    private Integer speedRange04Duration;
    /**
     * 车速区间04(30-40KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange04Fuel;
    /**
     * 车速区间05(40-50KM/H)累计里程 单位: M
     **/
    private Integer speedRange05Mileage;
    /**
     * 车速区间05(40-50KM/H)累计时长 单位:S
     **/
    private Integer speedRange05Duration;
    /**
     * 车速区间05(40-50KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange05Fuel;
    /**
     * 车速区间06(50-60KM/H)累计里程 单位: M
     **/
    private Integer speedRange06Mileage;
    /**
     * 车速区间06(50-60KM/H)累计时长 单位:S
     **/
    private Integer speedRange06Duration;
    /**
     * 车速区间06(50-60KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange06Fuel;
    /**
     * 车速区间07(60-70KM/H)累计里程 单位: M
     **/
    private Integer speedRange07Mileage;
    /**
     * 车速区间07(60-70KM/H)累计时长 单位:S
     **/
    private Integer speedRange07Duration;
    /**
     * 车速区间07(60-70KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange07Fuel;
    /**
     * 车速区间08(70-80KM/H)累计里程 单位: M
     **/
    private Integer speedRange08Mileage;
    /**
     * 车速区间08(70-80KM/H)累计时长 单位:S
     **/
    private Integer speedRange08Duration;
    /**
     * 车速区间08(70-80KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange08Fuel;
    /**
     * 车速区间09(80-90KM/H)累计里程 单位: M
     **/
    private Integer speedRange09Mileage;
    /**
     * 车速区间09(80-90KM/H)累计时长 单位:S
     **/
    private Integer speedRange09Duration;
    /**
     * 车速区间09(80-90KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange09Fuel;
    /**
     * 车速区间10(90-100KM/H)累计里程 单位: M
     **/
    private Integer speedRange10Mileage;
    /**
     * 车速区间10(90-100KM/H)累计时长 单位:S
     **/
    private Integer speedRange10Duration;
    /**
     * 车速区间10(90-100KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange10Fuel;
    /**
     * 车速区间11(100-110KM/H)累计里程 单位: M
     **/
    private Integer speedRange11Mileage;
    /**
     * 车速区间11(100-110KM/H)累计时长 单位:S
     **/
    private Integer speedRange11Duration;
    /**
     * 车速区间11(100-110KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange11Fuel;
    /**
     * 车速区间12(110-120KM/H)累计里程 单位: M
     **/
    private Integer speedRange12Mileage;
    /**
     * 车速区间12(110-120KM/H)累计时长 单位:S
     **/
    private Integer speedRange12Duration;
    /**
     * 车速区间12(110-120KM/H)累计油耗 单位:ML
     **/
    private Integer speedRange12Fuel;
    /**
     * 超区间车速(>120KM/H)累计里程 单位: M
     **/
    private Integer exceedSpeedRangeMileage;
    /**
     * 超区间车速(>120KM/H)累计时长 单位:S
     **/
    private Integer exceedSpeedRangeDuration;
    /**
     * 超区间车速(>120KM/H)累计油耗 单位:ML
     **/
    private Integer exceedSpeedRangeFuel;
    /**
     * 最大车速 单位: KM/H<br/>
     * {@link RangeSpeed}计算得来
     **/
    private Integer maxSpeed;
    /**
     * 最小车速 单位: KM/H<br/>
     * {@link RangeSpeed}计算得来
     **/
    private Integer minSpeed;
    /**
     * 有效最高速度，单位：KM/H<br/>
     * {@link RangeSpeed}计算得来
     **/
    private Integer maxUsefulSpeed;
    /**
     * 有效最小速度，单位：KM/H<br/>
     * {@link RangeSpeed}计算得来
     **/
    private Integer minUsefulSpeed;

    /**
     * 辅助制动里程 单位:M<br/>
     * 无赋值
     **/
    private Integer assistBrakeMileage;
    /**
     * 辅助制动时长 单位:S<br/>
     * 无赋值
     **/
    private Integer assistBrakeDuration;

    /**
     * 疲劳驾驶次数<br/>
     * {@link DrivingFatigue}计算得来
     **/
    private Integer fatigueDrivingNumber;
    /**
     * 疲劳驾驶时长<br/>
     * {@link DrivingFatigue}计算得来
     **/
    private Integer fatigueDrivingDuration;

    /**
     * 停车轰油门油耗 单位:ML<br/>
     * {@link ParkingAccelerator}计算得来
     **/
    private Integer parkThrottleFuel;
    /**
     * 停车轰油门时长 单位:S<br/>
     * {@link ParkingAccelerator}计算得来
     **/
    private Integer parkThrottleDuration;

    /**
     * 行驶过程中手刹使用里程 单位:M<br/>
     * {@link BrakeHand}计算得来
     **/
    private Integer drivingHandbrakeMileage;
    /**
     * 行驶过程中手刹使用时长 单位:S<br/>
     * {@link BrakeHand}计算得来
     **/
    private Integer drivingHandbrakeDuration;
    /**
     * 行驶过程中手刹使用次数<br/>
     * {@link BrakeHand}计算得来
     **/
    private Integer drivingHandbrakeNumber;
    /**
     * 怠速状态下手刹使用次数<br/>
     * {@link BrakeHand}计算得来
     **/
    private Integer idleHandbrakeNumber;
    /**
     * 怠速状态下手刹使用时长 单位:S<br/>
     * {@link BrakeHand}计算得来
     **/
    private Integer idleHandbrakeDuration;

    /**
     * 挡位01累计里程 单位: M
     **/
    private Integer gear01Mileage;
    /**
     * 挡位01累计油耗 单位:ML
     **/
    private Integer gear01Fuel;
    /**
     * 挡位01累计时长 单位:S
     **/
    private Integer gear01Duration;
    /**
     * 挡位01累计次数
     **/
    private Integer gear01Number;
    /**
     * 挡位02累计里程 单位: M
     **/
    private Integer gear02Mileage;
    /**
     * 挡位02累计油耗 单位:ML
     **/
    private Integer gear02Fuel;
    /**
     * 挡位02累计时长 单位:S
     **/
    private Integer gear02Duration;
    /**
     * 挡位02累计次数
     **/
    private Integer gear02Number;
    /**
     * 挡位03累计里程 单位: M
     **/
    private Integer gear03Mileage;
    /**
     * 挡位03累计油耗 单位:ML
     **/
    private Integer gear03Fuel;
    /**
     * 挡位03累计时长 单位:S
     **/
    private Integer gear03Duration;
    /**
     * 挡位03累计次数
     **/
    private Integer gear03Number;
    /**
     * 挡位04累计里程 单位: M
     **/
    private Integer gear04Mileage;
    /**
     * 挡位04累计油耗 单位:ML
     **/
    private Integer gear04Fuel;
    /**
     * 挡位04累计时长 单位:S
     **/
    private Integer gear04Duration;
    /**
     * 挡位04累计次数
     **/
    private Integer gear04Number;
    /**
     * 挡位05累计里程 单位: M
     **/
    private Integer gear05Mileage;
    /**
     * 挡位05累计油耗 单位:ML
     **/
    private Integer gear05Fuel;
    /**
     * 挡位05累计时长 单位:S
     **/
    private Integer gear05Duration;
    /**
     * 挡位05累计次数
     **/
    private Integer gear05Number;
    /**
     * 挡位06累计里程 单位: M
     **/
    private Integer gear06Mileage;
    /**
     * 挡位06累计油耗 单位:ML
     **/
    private Integer gear06Fuel;
    /**
     * 挡位06累计时长 单位:S
     **/
    private Integer gear06Duration;
    /**
     * 挡位06累计次数
     **/
    private Integer gear06Number;
    /**
     * 挡位07累计里程 单位: M
     **/
    private Integer gear07Mileage;
    /**
     * 挡位07累计油耗 单位:ML
     **/
    private Integer gear07Fuel;
    /**
     * 挡位07累计时长 单位:S
     **/
    private Integer gear07Duration;
    /**
     * 挡位07累计次数
     **/
    private Integer gear07Number;
    /**
     * 挡位08累计里程 单位: M
     **/
    private Integer gear08Mileage;
    /**
     * 挡位08累计油耗 单位:ML
     **/
    private Integer gear08Fuel;
    /**
     * 挡位08累计时长 单位:S
     **/
    private Integer gear08Duration;
    /**
     * 挡位08累计次数
     **/
    private Integer gear08Number;
    /**
     * 挡位09累计里程 单位: M
     **/
    private Integer gear09Mileage;
    /**
     * 挡位09累计油耗 单位:ML
     **/
    private Integer gear09Fuel;
    /**
     * 挡位09累计时长 单位:S
     **/
    private Integer gear09Duration;
    /**
     * 挡位09累计次数
     **/
    private Integer gear09Number;
    /**
     * 挡位10累计里程 单位: M
     **/
    private Integer gear10Mileage;
    /**
     * 挡位10累计油耗 单位:ML
     **/
    private Integer gear10Fuel;
    /**
     * 挡位10累计时长 单位:S
     **/
    private Integer gear10Duration;
    /**
     * 挡位10累计次数
     **/
    private Integer gear10Number;
    /**
     * 挡位11累计里程 单位: M
     **/
    private Integer gear11Mileage;
    /**
     * 挡位11累计油耗 单位:ML
     **/
    private Integer gear11Fuel;
    /**
     * 挡位11累计时长 单位:S
     **/
    private Integer gear11Duration;
    /**
     * 挡位11累计次数
     **/
    private Integer gear11Number;
    /**
     * 挡位12累计里程 单位: M
     **/
    private Integer gear12Mileage;
    /**
     * 挡位12累计油耗 单位:ML
     **/
    private Integer gear12Fuel;
    /**
     * 挡位12累计时长 单位:S
     **/
    private Integer gear12Duration;
    /**
     * 挡位12累计次数
     **/
    private Integer gear12Number;
    /**
     * 挡位13累计里程 单位: M
     **/
    private Integer gear13Mileage;
    /**
     * 挡位13累计油耗 单位:ML
     **/
    private Integer gear13Fuel;
    /**
     * 挡位13累计时长 单位:S
     **/
    private Integer gear13Duration;
    /**
     * 挡位13累计次数
     **/
    private Integer gear13Number;
    /**
     * 挡位14累计里程 单位: M
     **/
    private Integer gear14Mileage;
    /**
     * 挡位14累计油耗 单位:ML
     **/
    private Integer gear14Fuel;
    /**
     * 挡位14累计时长 单位:S
     **/
    private Integer gear14Duration;
    /**
     * 挡位14累计次数
     **/
    private Integer gear14Number;
    /**
     * 挡位15累计里程 单位: M
     **/
    private Integer gear15Mileage;
    /**
     * 挡位15累计油耗 单位:ML
     **/
    private Integer gear15Fuel;
    /**
     * 挡位15累计时长 单位:S
     **/
    private Integer gear15Duration;
    /**
     * 挡位15累计次数
     **/
    private Integer gear15Number;
    /**
     * 挡位16累计里程 单位: M
     **/
    private Integer gear16Mileage;
    /**
     * 挡位16累计油耗 单位:ML
     **/
    private Integer gear16Fuel;
    /**
     * 挡位16累计时长 单位:S
     **/
    private Integer gear16Duration;
    /**
     * 挡位16累计次数
     **/
    private Integer gear16Number;
    /**
     * 其它挡位(包含倒档，空挡)累计里程 单位: M
     **/
    private Integer gearOtherMileage;
    /**
     * 其它挡位(包含倒档，空挡)累计油耗 单位:ML
     **/
    private Integer gearOtherFuel;
    /**
     * 其它挡位(包含倒档，空挡)累计时长 单位:S
     **/
    private Integer gearOtherDuration;
    /**
     * 其它挡位(包含倒档，空挡)累计次数
     **/
    private Integer gearOtherNumber;

    /**
     * 发动机转速区间(0-500RPM)里程 单位: M
     **/
    private Integer rpmRange500Mileage;
    /**
     * 发动机转速区间(0-500RPM)油耗 单位:ML
     **/
    private Integer rpmRange500Fuel;
    /**
     * 发动机转速区间(0-500RPM)时长 单位:S
     **/
    private Integer rpmRange500Duration;
    /**
     * 发动机转速区间(500-600RPM)里程 单位: M
     **/
    private Integer rpmRange600Mileage;
    /**
     * 发动机转速区间(500-600RPM)油耗 单位:ML
     **/
    private Integer rpmRange600Fuel;
    /**
     * 发动机转速区间(500-600RPM)时长 单位:S
     **/
    private Integer rpmRange600Duration;
    /**
     * 发动机转速区间(600-700RPM)里程 单位: M
     **/
    private Integer rpmRange700Mileage;
    /**
     * 发动机转速区间(600-700RPM)油耗 单位:ML
     **/
    private Integer rpmRange700Fuel;
    /**
     * 发动机转速区间(600-700RPM)时长 单位:S
     **/
    private Integer rpmRange700Duration;
    /**
     * 发动机转速区间(700-800RPM)里程 单位: M
     **/
    private Integer rpmRange800Mileage;
    /**
     * 发动机转速区间(700-800RPM)油耗 单位:ML
     **/
    private Integer rpmRange800Fuel;
    /**
     * 发动机转速区间(700-800RPM)时长 单位:S
     **/
    private Integer rpmRange800Duration;
    /**
     * 发动机转速区间(800-900RPM)里程 单位: M
     **/
    private Integer rpmRange900Mileage;
    /**
     * 发动机转速区间(800-900RPM)油耗 单位:ML
     **/
    private Integer rpmRange900Fuel;
    /**
     * 发动机转速区间(800-900RPM)时长 单位:S
     **/
    private Integer rpmRange900Duration;
    /**
     * 发动机转速区间(900-1000RPM)里程 单位: M
     **/
    private Integer rpmRange1000Mileage;
    /**
     * 发动机转速区间(900-1000RPM)油耗 单位:ML
     **/
    private Integer rpmRange1000Fuel;
    /**
     * 发动机转速区间(900-1000RPM)时长 单位:S
     **/
    private Integer rpmRange1000Duration;
    /**
     * 发动机转速区间(1000-1100RPM)里程 单位: M
     **/
    private Integer rpmRange1100Mileage;
    /**
     * 发动机转速区间(1000-1100RPM)油耗 单位:ML
     **/
    private Integer rpmRange1100Fuel;
    /**
     * 发动机转速区间(1000-1100RPM)时长 单位:S
     **/
    private Integer rpmRange1100Duration;
    /**
     * 发动机转速区间(1100-1200RPM)里程 单位: M
     **/
    private Integer rpmRange1200Mileage;
    /**
     * 发动机转速区间(1100-1200RPM)油耗 单位:ML
     **/
    private Integer rpmRange1200Fuel;
    /**
     * 发动机转速区间(1100-1200RPM)时长 单位:S
     **/
    private Integer rpmRange1200Duration;
    /**
     * 发动机转速区间(1200-1300RPM)里程 单位: M
     **/
    private Integer rpmRange1300Mileage;
    /**
     * 发动机转速区间(1200-1300RPM)油耗 单位:ML
     **/
    private Integer rpmRange1300Fuel;
    /**
     * 发动机转速区间(1200-1300RPM)时长 单位:S
     **/
    private Integer rpmRange1300Duration;
    /**
     * 发动机转速区间(1300-1400RPM)里程 单位: M
     **/
    private Integer rpmRange1400Mileage;
    /**
     * 发动机转速区间(1300-1400RPM)油耗 单位:ML
     **/
    private Integer rpmRange1400Fuel;
    /**
     * 发动机转速区间(1300-1400RPM)时长 单位:S
     **/
    private Integer rpmRange1400Duration;
    /**
     * 发动机转速区间(1400-1500RPM)里程 单位: M
     **/
    private Integer rpmRange1500Mileage;
    /**
     * 发动机转速区间(1400-1500RPM)油耗 单位:ML
     **/
    private Integer rpmRange1500Fuel;
    /**
     * 发动机转速区间(1400-1500RPM)时长 单位:S
     **/
    private Integer rpmRange1500Duration;
    /**
     * 发动机转速区间(1500-1600RPM)里程 单位: M
     **/
    private Integer rpmRange1600Mileage;
    /**
     * 发动机转速区间(1500-1600RPM)油耗 单位:ML
     **/
    private Integer rpmRange1600Fuel;
    /**
     * 发动机转速区间(1500-1600RPM)时长 单位:S
     **/
    private Integer rpmRange1600Duration;
    /**
     * 发动机转速区间(1600-1700RPM)里程 单位: M
     **/
    private Integer rpmRange1700Mileage;
    /**
     * 发动机转速区间(1600-1700RPM)油耗 单位:ML
     **/
    private Integer rpmRange1700Fuel;
    /**
     * 发动机转速区间(1600-1700RPM)时长 单位:S
     **/
    private Integer rpmRange1700Duration;
    /**
     * 发动机转速区间(1700-1800RPM)里程 单位: M
     **/
    private Integer rpmRange1800Mileage;
    /**
     * 发动机转速区间(1700-1800RPM)油耗 单位:ML
     **/
    private Integer rpmRange1800Fuel;
    /**
     * 发动机转速区间(1700-1800RPM)时长 单位:S
     **/
    private Integer rpmRange1800Duration;
    /**
     * 发动机转速区间(1800-1900RPM)里程 单位: M
     **/
    private Integer rpmRange1900Mileage;
    /**
     * 发动机转速区间(1800-1900RPM)油耗 单位:ML
     **/
    private Integer rpmRange1900Fuel;
    /**
     * 发动机转速区间(1800-1900RPM)时长 单位:S
     **/
    private Integer rpmRange1900Duration;
    /**
     * 发动机转速区间(1900-2000RPM)里程 单位: M
     **/
    private Integer rpmRange2000Mileage;
    /**
     * 发动机转速区间(1900-2000RPM)油耗 单位:ML
     **/
    private Integer rpmRange2000Fuel;
    /**
     * 发动机转速区间(1900-2000RPM)时长 单位:S
     **/
    private Integer rpmRange2000Duration;
    /**
     * 发动机转速区间(2000-2100RPM)里程 单位: M
     **/
    private Integer rpmRange2100Mileage;
    /**
     * 发动机转速区间(2000-2100RPM)油耗 单位:ML
     **/
    private Integer rpmRange2100Fuel;
    /**
     * 发动机转速区间(2000-2100RPM)时长 单位:S
     **/
    private Integer rpmRange2100Duration;
    /**
     * 发动机转速区间(2100-2200RPM)里程 单位: M
     **/
    private Integer rpmRange2200Mileage;
    /**
     * 发动机转速区间(2100-2200RPM)油耗 单位:ML
     **/
    private Integer rpmRange2200Fuel;
    /**
     * 发动机转速区间(2100-2200RPM)时长 单位:S
     **/
    private Integer rpmRange2200Duration;
    /**
     * 发动机转速区间(2200-2300RPM)里程 单位: M
     **/
    private Integer rpmRange2300Mileage;
    /**
     * 发动机转速区间(2200-2300RPM)油耗 单位:ML
     **/
    private Integer rpmRange2300Fuel;
    /**
     * 发动机转速区间(2200-2300RPM)时长 单位:S
     **/
    private Integer rpmRange2300Duration;
    /**
     * 发动机转速区间(2300-2400RPM)里程 单位: M
     **/
    private Integer rpmRange2400Mileage;
    /**
     * 发动机转速区间(2300-2400RPM)油耗 单位:ML
     **/
    private Integer rpmRange2400Fuel;
    /**
     * 发动机转速区间(2300-2400RPM)时长 单位:S
     **/
    private Integer rpmRange2400Duration;
    /**
     * 发动机转速区间(2400-2500RPM)里程 单位: M
     **/
    private Integer rpmRange2500Mileage;
    /**
     * 发动机转速区间(2400-2500RPM)油耗 单位:ML
     **/
    private Integer rpmRange2500Fuel;
    /**
     * 发动机转速区间(2400-2500RPM)时长 单位:S
     **/
    private Integer rpmRange2500Duration;
    /**
     * 发动机转速区间(2500-2600RPM)里程 单位: M
     **/
    private Integer rpmRange2600Mileage;
    /**
     * 发动机转速区间(2500-2600RPM)油耗 单位:ML
     **/
    private Integer rpmRange2600Fuel;
    /**
     * 发动机转速区间(2500-2600RPM)时长 单位:S
     **/
    private Integer rpmRange2600Duration;
    /**
     * 发动机转速区间(2600-2700RPM)里程 单位: M
     **/
    private Integer rpmRange2700Mileage;
    /**
     * 发动机转速区间(2600-2700RPM)油耗 单位:ML
     **/
    private Integer rpmRange2700Fuel;
    /**
     * 发动机转速区间(2600-2700RPM)时长 单位:S
     **/
    private Integer rpmRange2700Duration;
    /**
     * 发动机转速区间(2700-2800RPM)里程 单位: M
     **/
    private Integer rpmRange2800Mileage;
    /**
     * 发动机转速区间(2700-2800RPM)油耗 单位:ML
     **/
    private Integer rpmRange2800Fuel;
    /**
     * 发动机转速区间(2700-2800RPM)时长 单位:S
     **/
    private Integer rpmRange2800Duration;
    /**
     * 发动机转速区间(2800-2900RPM)里程 单位: M
     **/
    private Integer rpmRange2900Mileage;
    /**
     * 发动机转速区间(2800-2900RPM)油耗 单位:ML
     **/
    private Integer rpmRange2900Fuel;
    /**
     * 发动机转速区间(2800-2900RPM)时长 单位:S
     **/
    private Integer rpmRange2900Duration;
    /**
     * 发动机转速区间(2900-3000RPM)里程 单位: M
     **/
    private Integer rpmRange3000Mileage;
    /**
     * 发动机转速区间(2900-3000RPM)油耗 单位:ML
     **/
    private Integer rpmRange3000Fuel;
    /**
     * 发动机转速区间(2900-3000RPM)时长 单位:S
     **/
    private Integer rpmRange3000Duration;
    /**
     * 发动机转速区间(>3000RPM)里程 单位: M
     **/
    private Integer rpmRangeOver3000Mileage;
    /**
     * 发动机转速区间(>3000RPM)油耗 单位:ML
     **/
    private Integer rpmRangeOver3000Fuel;
    /**
     * 发动机转速区间(>3000RPM)时长 单位:S
     **/
    private Integer rpmRangeOver3000Duration;
    /**
     * （不包含怠速）转速总和<br/>
     * {@link RangeRotation}计算得来
     **/
    private Long noIdleRpmSum;
    /**
     * （不包含怠速）转速总个数<br/>
     * {@link RangeRotation}计算得来
     **/
    private Integer noIdleRpmCount;
    /**
     * 转速总和<br/>
     * {@link RangeRotation}计算得来
     **/
    private Long rpmSum;
    /**
     * 转速总个数<br/>
     * {@link RangeRotation}计算得来
     **/
    private Integer rpmCount;
    /**
     * 最高转速<br/>
     * {@link RangeRotation}计算得来
     **/
    private Integer maxRpm;
    /**
     * 最低转速<br/>
     * {@link RangeRotation}计算得来
     **/
    private Integer minRpm;
   
    /**
     * 海拔区间段统计key为区间index<br/>
     * {@link RangeAltitude}计算得来
     **/
    private Map<Integer,InterRangeData> altitudeRanges;

    /**
     * 按小时统计 key为小时（0-23）<br/>
     * {@link RangeClock}计算得来
     **/
    private Map<Integer,InterRangeData> clockRanges;

    /**
     * 运行水温x<50时长，单位：秒
     **/
    private Integer workWaterTemp50Duration;
    /**
     * 运行水温50<=x<70时长，单位：秒
     **/
    private Integer workWaterTemp70Duration;
    /**
     * 运行水温70<=x<80时长，单位：秒
     **/
    private Integer workWaterTemp80Duration;
    /**
     * 运行水温80<=x<85时长，单位：秒
     **/
    private Integer workWaterTemp85Duration;
    /**
     * 运行水温85<=x<90时长，单位：秒
     **/
    private Integer workWaterTemp90Duration;
    /**
     * 运行水温90<=x<95时长，单位：秒
     **/
    private Integer workWaterTemp95Duration;
    /**
     * 运行水温95<=x<100时长，单位：秒
     **/
    private Integer workWaterTemp100Duration;
    /**
     * 运行水温100<=x<105时长，单位：秒
     **/
    private Integer workWaterTemp105Duration;
    /**
     * 运行水温105<=x<110时长，单位：秒
     **/
    private Integer workWaterTemp110Duration;
    /**
     * 运行水温110<=x<115时长，单位：秒
     **/
    private Integer workWaterTemp115Duration;
    /**
     * 运行水温115<=x<120时长，单位：秒
     **/
    private Integer workWaterTemp120Duration;
    /**
     * 运行水温120<=x<125时长，单位：秒
     **/
    private Integer workWaterTemp125Duration;
    /**
     * 运行水温125<=x<130时长，单位：秒
     **/
    private Integer workWaterTemp130Duration;
    /**
     * 运行水温130<=x<135时长，单位：秒
     **/
    private Integer workWaterTemp135Duration;
    /**
     * 运行水温135<=x<140时长，单位：秒
     **/
    private Integer workWaterTemp140Duration;
    /**
     * 运行水温140<=x<145时长，单位：秒
     **/
    private Integer workWaterTemp145Duration;
    /**
     * 运行水温145<=x<150时长，单位：秒
     **/
    private Integer workWaterTemp150Duration;
    /**
     * 运行水温x>=150时长，单位：秒
     **/
    private Integer workWaterTempOver150Duration;

    /**
     * 怠速水温x<50时长，单位：秒
     **/
    private Integer idleWaterTemp50Duration;
    /**
     * 怠速水温50<=x<70时长，单位：秒
     **/
    private Integer idleWaterTemp70Duration;
    /**
     * 怠速水温70<=x<80时长，单位：秒
     **/
    private Integer idleWaterTemp80Duration;
    /**
     * 怠速水温80<=x<85时长，单位：秒
     **/
    private Integer idleWaterTemp85Duration;
    /**
     * 怠速水温85<=x<90时长，单位：秒
     **/
    private Integer idleWaterTemp90Duration;
    /**
     * 怠速水温90<=x<95时长，单位：秒
     **/
    private Integer idleWaterTemp95Duration;
    /**
     * 怠速水温95<=x<100时长，单位：秒
     **/
    private Integer idleWaterTemp100Duration;
    /**
     * 怠速水温100<=x<105时长，单位：秒
     **/
    private Integer idleWaterTemp105Duration;
    /**
     * 怠速水温105<=x<110时长，单位：秒
     **/
    private Integer idleWaterTemp110Duration;
    /**
     * 怠速水温110<=x<115时长，单位：秒
     **/
    private Integer idleWaterTemp115Duration;
    /**
     * 怠速水温115<=x<120时长，单位：秒
     **/
    private Integer idleWaterTemp120Duration;
    /**
     * 怠速水温120<=x<125时长，单位：秒
     **/
    private Integer idleWaterTemp125Duration;
    /**
     * 怠速水温125<=x<130时长，单位：秒
     **/
    private Integer idleWaterTemp130Duration;
    /**
     * 怠速水温130<=x<135时长，单位：秒
     **/
    private Integer idleWaterTemp135Duration;
    /**
     * 怠速水温135<=x<140时长，单位：秒
     **/
    private Integer idleWaterTemp140Duration;
    /**
     * 怠速水温140<=x<145时长，单位：秒
     **/
    private Integer idleWaterTemp145Duration;
    /**
     * 怠速水温145<=x<150时长，单位：秒
     **/
    private Integer idleWaterTemp150Duration;
    /**
     * 怠速水温x>=150时长，单位：秒
     **/
    private Integer idleWaterTempOver150Duration;
    /**
     * 最高运行水温<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer maxWorkWaterTemp;
    /**
     * 最低运行水温<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer minWorkWaterTemp;
    /**
     * 运行水温总和<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Long workWaterTempSum;
    /**
     * 运行水温总个数<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer workWaterTempCount;
    /**
     * 最高怠速水温<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer maxIdleWaterTemp;
    /**
     * 最低怠速水温<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer minIdleWaterTemp;
    /**
     * 怠速水温总和<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Long idleWaterTempSum;
    /**
     * 怠速水温总个数<br/>
     * {@link RangeWaterTemp}计算得来
     **/
    private Integer idleWaterTempCount;


    /**
     * 油门开度=0里程，单位：米
     **/
    private Integer gasOpenPercent0Mileage;
    /**
     * 油门开度0<x<=10里程，单位：米
     **/
    private Integer gasOpenPercent10Mileage;
    /**
     * 油门开度10<x<=20里程，单位：米
     **/
    private Integer gasOpenPercent20Mileage;
    /**
     * 油门开度20<x<=30里程，单位：米
     **/
    private Integer gasOpenPercent30Mileage;
    /**
     * 油门开度30<x<=40里程，单位：米
     **/
    private Integer gasOpenPercent40Mileage;
    /**
     * 油门开度40<x<=50里程，单位：米
     **/
    private Integer gasOpenPercent50Mileage;
    /**
     * 油门开度50<x<=60里程，单位：米
     **/
    private Integer gasOpenPercent60Mileage;
    /**
     * 油门开度60<x<=70里程，单位：米
     **/
    private Integer gasOpenPercent70Mileage;
    /**
     * 油门开度70<x<=80里程，单位：米
     **/
    private Integer gasOpenPercent80Mileage;
    /**
     * 油门开度80<x<=90里程，单位：米
     **/
    private Integer gasOpenPercent90Mileage;
    /**
     * 油门开度90<x<100里程，单位：米
     **/
    private Integer gasOpenPercent99Mileage;
    /**
     * 油门开度=100里程，单位：米
     **/
    private Integer gasOpenPercent100Mileage;
    /**
     * 油门开度=0油耗，单位：ML
     **/
    private Integer gasOpenPercent0Fuel;
    /**
     * 油门开度0<x<=10油耗，单位：ML
     **/
    private Integer gasOpenPercent10Fuel;
    /**
     * 油门开度10<x<=20油耗，单位：ML
     **/
    private Integer gasOpenPercent20Fuel;
    /**
     * 油门开度20<x<=30油耗，单位：ML
     **/
    private Integer gasOpenPercent30Fuel;
    /**
     * 油门开度30<x<=40油耗，单位：ML
     **/
    private Integer gasOpenPercent40Fuel;
    /**
     * 油门开度40<x<=50油耗，单位：ML
     **/
    private Integer gasOpenPercent50Fuel;
    /**
     * 油门开度50<x<=60油耗，单位：ML
     **/
    private Integer gasOpenPercent60Fuel;
    /**
     * 油门开度60<x<=70油耗，单位：ML
     **/
    private Integer gasOpenPercent70Fuel;
    /**
     * 油门开度70<x<=80油耗，单位：ML
     **/
    private Integer gasOpenPercent80Fuel;
    /**
     * 油门开度80<x<=90油耗，单位：ML
     **/
    private Integer gasOpenPercent90Fuel;
    /**
     * 油门开度90<x<100油耗，单位：ML
     **/
    private Integer gasOpenPercent99Fuel;
    /**
     * 油门开度=100油耗，单位：ML
     **/
    private Integer gasOpenPercent100Fuel;
    /**
     * 油门开度=0时长，单位：秒
     **/
    private Integer gasOpenPercent0Duration;
    /**
     * 油门开度0<x<=10时长，单位：秒
     **/
    private Integer gasOpenPercent10Duration;
    /**
     * 油门开度10<x<=20时长，单位：秒
     **/
    private Integer gasOpenPercent20Duration;
    /**
     * 油门开度20<x<=30时长，单位：秒
     **/
    private Integer gasOpenPercent30Duration;
    /**
     * 油门开度30<x<=40时长，单位：秒
     **/
    private Integer gasOpenPercent40Duration;
    /**
     * 油门开度40<x<=50时长，单位：秒
     **/
    private Integer gasOpenPercent50Duration;
    /**
     * 油门开度50<x<=60时长，单位：秒
     **/
    private Integer gasOpenPercent60Duration;
    /**
     * 油门开度60<x<=70时长，单位：秒
     **/
    private Integer gasOpenPercent70Duration;
    /**
     * 油门开度70<x<=80时长，单位：秒
     **/
    private Integer gasOpenPercent80Duration;
    /**
     * 油门开度80<x<=90时长，单位：秒
     **/
    private Integer gasOpenPercent90Duration;
    /**
     * 油门开度90<x<100时长，单位：秒
     **/
    private Integer gasOpenPercent99Duration;
    /**
     * 油门开度=100时长，单位：秒
     **/
    private Integer gasOpenPercent100Duration;
    /**
     * 油门开度总和<br/>
     * {@link RangeGasOpenPercent}计算得来
     **/
    private Long gasOpenPercentSum;
    /**
     * 油门开度总个数<br/>
     * {@link RangeGasOpenPercent}计算得来
     **/
    private Integer gasOpenPercentCount;

    /**
     * 扭矩=0时长，单位：秒
     **/
    private Integer torque0Duration;
    /**
     * 扭矩0<x<=10时长，单位：秒
     **/
    private Integer torque10Duration;
    /**
     * 扭矩10<x<=20时长，单位：秒
     **/
    private Integer torque20Duration;
    /**
     * 扭矩20<x<=30时长，单位：秒
     **/
    private Integer torque30Duration;
    /**
     * 扭矩30<x<=40时长，单位：秒
     **/
    private Integer torque40Duration;
    /**
     * 扭矩40<x<=50时长，单位：秒
     **/
    private Integer torque50Duration;
    /**
     * 扭矩50<x<=60时长，单位：秒
     **/
    private Integer torque60Duration;
    /**
     * 扭矩60<x<=70时长，单位：秒
     **/
    private Integer torque70Duration;
    /**
     * 扭矩70<x<=80时长，单位：秒
     **/
    private Integer torque80Duration;
    /**
     * 扭矩80<x<=90时长，单位：秒
     **/
    private Integer torque90Duration;
    /**
     * 扭矩90<x<100时长，单位：秒
     **/
    private Integer torque99Duration;
    /**
     * 扭矩=100时长，单位：秒
     **/
    private Integer torque100Duration;
    /**
     * 扭矩=0里程，单位：米
     **/
    private Integer torque0Mileage;
    /**
     * 扭矩0<x<=10里程，单位：米
     **/
    private Integer torque10Mileage;
    /**
     * 扭矩10<x<=20里程，单位：米
     **/
    private Integer torque20Mileage;
    /**
     * 扭矩20<x<=30里程，单位：米
     **/
    private Integer torque30Mileage;
    /**
     * 扭矩30<x<=40里程，单位：米
     **/
    private Integer torque40Mileage;
    /**
     * 扭矩40<x<=50里程，单位：米
     **/
    private Integer torque50Mileage;
    /**
     * 扭矩50<x<=60里程，单位：米
     **/
    private Integer torque60Mileage;
    /**
     * 扭矩60<x<=70里程，单位：米
     **/
    private Integer torque70Mileage;
    /**
     * 扭矩70<x<=80里程，单位：米
     **/
    private Integer torque80Mileage;
    /**
     * 扭矩80<x<=90里程，单位：米
     **/
    private Integer torque90Mileage;
    /**
     * 扭矩90<x<100里程，单位：米
     **/
    private Integer torque99Mileage;
    /**
     * 扭矩=100里程，单位：米
     **/
    private Integer torque100Mileage;
    /**
     * 扭矩=0油耗，单位：ML
     **/
    private Integer torque0Fuel;
    /**
     * 扭矩0<x<=10油耗，单位：ML
     **/
    private Integer torque10Fuel;
    /**
     * 扭矩10<x<=20油耗，单位：ML
     **/
    private Integer torque20Fuel;
    /**
     * 扭矩20<x<=30油耗，单位：ML
     **/
    private Integer torque30Fuel;
    /**
     * 扭矩30<x<=40油耗，单位：ML
     **/
    private Integer torque40Fuel;
    /**
     * 扭矩40<x<=50油耗，单位：ML
     **/
    private Integer torque50Fuel;
    /**
     * 扭矩50<x<=60油耗，单位：ML
     **/
    private Integer torque60Fuel;
    /**
     * 扭矩60<x<=70油耗，单位：ML
     **/
    private Integer torque70Fuel;
    /**
     * 扭矩70<x<=80油耗，单位：ML
     **/
    private Integer torque80Fuel;
    /**
     * 扭矩80<x<=90油耗，单位：ML
     **/
    private Integer torque90Fuel;
    /**
     * 扭矩90<x<100油耗，单位：ML
     **/
    private Integer torque99Fuel;
    /**
     * 扭矩=100油耗，单位：ML
     **/
    private Integer torque100Fuel;
    /**
     * 最高扭矩<br/>
     * {@link RangeTorque}计算得来
     **/
    private Integer maxTorque;
    /**
     * 最低扭矩<br/>
     * {@link RangeTorque}计算得来
     **/
    private Integer minTorque;
    /**
     * 扭矩总和<br/>
     * {@link RangeTorque}计算得来
     **/
    private Long torqueSum;
    /**
     * 扭矩总个数<br/>
     * {@link RangeTorque}计算得来
     **/
    private Integer torqueCount;

    /**
     * 发动机进气温度x<50，单位：秒
     **/
    private Integer iat50Duration;
    /**
     * 发动机进气温度50<=x<70，单位：秒
     **/
    private Integer iat70Duration;
    /**
     * 发动机进气温度70<=x<80，单位：秒
     **/
    private Integer iat80Duration;
    /**
     * 发动机进气温度80<=x<85，单位：秒
     **/
    private Integer iat85Duration;
    /**
     * 发动机进气温度85<=x<90，单位：秒
     **/
    private Integer iat90Duration;
    /**
     * 发动机进气温度90<=x<95，单位：秒
     **/
    private Integer iat95Duration;
    /**
     * 发动机进气温度95<=x<100，单位：秒
     **/
    private Integer iat100Duration;
    /**
     * 发动机进气温度100<=x<105，单位：秒
     **/
    private Integer iat105Duration;
    /**
     * 发动机进气温度105<=x<110，单位：秒
     **/
    private Integer iat110Duration;
    /**
     * 发动机进气温度110<=x<115，单位：秒
     **/
    private Integer iat115Duration;
    /**
     * 发动机进气温度115<=x<120，单位：秒
     **/
    private Integer iat120Duration;
    /**
     * 发动机进气温度120<=x<125，单位：秒
     **/
    private Integer iat125Duration;
    /**
     * 发动机进气温度125<=x<130，单位：秒
     **/
    private Integer iat130Duration;
    /**
     * 发动机进气温度130<=x<135，单位：秒
     **/
    private Integer iat135Duration;
    /**
     * 发动机进气温度135<=x<140，单位：秒
     **/
    private Integer iat140Duration;
    /**
     * 发动机进气温度140<=x<145，单位：秒
     **/
    private Integer iat145Duration;
    /**
     * 发动机进气温度145<=x<150，单位：秒
     **/
    private Integer iat150Duration;
    /**
     * 发动机进气温度x>=150，单位：秒
     **/
    private Integer iatOver150Duration;
    /**
     * 进气温度总和<br/>
     * {@link RangeIntakeAirTemp}计算得来
     **/
    private Long iatSum;
    /**
     * 进气温度总个数<br/>
     * {@link RangeIntakeAirTemp}计算得来
     **/
    private Integer iatCount;
    /**
     * 最高进气温度<br/>
     * {@link RangeIntakeAirTemp}计算得来
     **/
    private Integer maxIat;
    /**
     * 最低进气温度<br/>
     * {@link RangeIntakeAirTemp}计算得来
     **/
    private Integer minIat;


    /**
     * 发动机进气压力x<50，单位：秒
     **/
    private Integer ip50Duration;
    /**
     * 发动机进气压力50<=x<60，单位：秒
     **/
    private Integer ip60Duration;
    /**
     * 发动机进气压力60<=x<70，单位：秒
     **/
    private Integer ip70Duration;
    /**
     * 发动机进气压力70<=x<80，单位：秒
     **/
    private Integer ip80Duration;
    /**
     * 发动机进气压力80<=x<90，单位：秒
     **/
    private Integer ip90Duration;
    /**
     * 发动机进气压力90<=x<100，单位：秒
     **/
    private Integer ip100Duration;
    /**
     * 发动机进气压力100<=x<110，单位：秒
     **/
    private Integer ip110Duration;
    /**
     * 发动机进气压力110<=x<120，单位：秒
     **/
    private Integer ip120Duration;
    /**
     * 发动机进气压力120<=x<130，单位：秒
     **/
    private Integer ip130Duration;
    /**
     * 发动机进气压力130<=x<140，单位：秒
     **/
    private Integer ip140Duration;
    /**
     * 发动机进气压力140<=x<150，单位：秒
     **/
    private Integer ip150Duration;
    /**
     * 发动机进气压力x>=150，单位：秒
     **/
    private Integer ipOver150Duration;
    /**
     * 进气压力总和<br/>
     * {@link RangeIntakeAirPressure}计算得来
     **/
    private Long ipSum;
    /**
     * 进气压力总个数<br/>
     * {@link RangeIntakeAirPressure}计算得来
     **/
    private Integer ipCount;
    /**
     * 最高进气压力<br/>
     * {@link RangeIntakeAirPressure}计算得来
     **/
    private Integer maxIp;
    /**
     * 最低进气压力<br/>
     * {@link RangeIntakeAirPressure}计算得来
     **/
    private Integer minIp;

    /**
     * 超速90km/h里程，单位m<br/>
     * {@link SpeedOver}计算得来
     **/
    private Integer so90Mileage;
    /**
     * 超速90km/h油耗，单位ml<br/>
     * {@link SpeedOver}计算得来
     **/
    private Integer so90Fuel;
    /**
     * 超速90km/h时长，单位s<br/>
     * {@link SpeedOver}计算得来
     **/
    private Integer so90Duration;
    /**
     * 超速90km/h次数<br/>
     * {@link SpeedOver}计算得来
     **/
    private Integer so90Number;
    /**
     * 超速120km/h里程，单位m<br/>
     * {@link SpeedOver120}计算得来
     **/
    private Integer so120Mileage;
    /**
     * 超速120km/h油耗，单位ml<br/>
     * {@link SpeedOver120}计算得来
     **/
    private Integer so120Fuel;
    /**
     * 超速120km/h时长，单位s<br/>
     * {@link SpeedOver120}计算得来
     **/
    private Integer so120Duration;
    /**
     * 超速120km/h次数<br/>
     * {@link SpeedOver120}计算得来
     **/
    private Integer so120Number;

    /**
     * 超转速里程，单位m<br/>
     * {@link RotationOver}计算得来
     **/
    private Integer srMileage;
    /**
     * 超转速油耗，单位ml<br/>
     * {@link RotationOver}计算得来
     **/
    private Integer srFuel;
    /**
     * 超转速时长，单位s<br/>
     * {@link RotationOver}计算得来
     **/
    private Integer srDuration;
    /**
     * 超转速次数<br/>
     * {@link RotationOver}计算得来
     **/
    private Integer srNumber;

    /**
     * 低转速（脱档）里程，单位m<br/>
     * {@link RotationLow}计算得来
     **/
    private Integer lrogMileage;
    /**
     * 低转速油耗，单位ml<br/>
     * {@link RotationLow}计算得来
     **/
    private Integer lrogFuel;
    /**
     * 低转速（脱档）时长，单位s<br/>
     * {@link RotationLow}计算得来
     **/
    private Integer lrogDuration;
    /**
     * 低转速（脱档）次数<br/>
     * {@link RotationLow}计算得来
     **/
    private Integer lrogNumber;

    /**
     * 高速刹车里程，单位m<br/>
     * {@link BrakeHighSpeed}计算得来
     **/
    private Integer hsbMileage;
    /**
     * 高速刹车时长，单位s<br/>
     * {@link BrakeHighSpeed}计算得来
     **/
    private Integer hsbDuration;
    /**
     * 高速刹车次数<br/>
     * {@link BrakeHighSpeed}计算得来
     **/
    private Integer hsbNumber;

    /**
     * 普通刹车次数<br/>
     * {@link BrakeNormal}计算得来
     **/
    private Integer csbNumber;
    /**
     * 普通刹车时长，单位s<br/>
     * {@link BrakeNormal}计算得来
     **/
    private Integer csbDuration;
    /**
     * 普通刹车里程，单位m<br/>
     * {@link BrakeNormal}计算得来
     **/
    private Integer csbMileage;

    /**
     * 离合次数
     * {@link ClutchSwitch}计算得来
     **/
    private Integer clutchNumber;
    /**
     * 离合时长，单位s<br/>
     * {@link ClutchSwitch}计算得来
     **/
    private Integer clutchDuration;
    /**
     * 离合里程，单位m<br/>
     * {@link ClutchSwitch}计算得来
     **/
    private Integer clutchMileage;

    /**
     * 急转弯次数<br/>
     * {@link SharpTurning}计算得来
     **/
    private Integer sharpTurningNumber;
    /**
     * 急转弯行驶距离，单位m<br/>
     * {@link SharpTurning}计算得来
     **/
    private Integer sharpTurningMil;

    /**
     * 整车估算载荷、载重 单位:0.1吨<br/>
     * {@link VehicleEstimatedLoad}计算得来
     **/
    private Integer vehicleEstimatedLoad;
    /**
     * 载重类型： -1:未识别 0:空载 1:半载 2:满载 3:超载<br/>
     * {@link VehicleEstimatedLoad}计算得来
     **/
    private Integer wloadType;

    /**
     * 经过城市，逗号分隔<br/>
     * {@link CrossCity}计算得来
     **/
    private String crossCities;
    /**
     * 经过城市详细信息<br/>
     * {@link CrossCity}计算得来
     **/
    private List<InterCrossCity> crossCitiesDetail;

    /**
     *  东风、一汽，急加速距离 单位:M<br/>
     *  {@link SharpAcceleration_DF}计算得来
     **/
    private Integer sharpUpSpeedMileage_DF;
    /**
     * 东风、一汽，急加速油耗 单位:ML<br/>
     *  {@link SharpAcceleration_DF}计算得来
     **/
    private Integer sharpUpSpeedFuel_DF;
    /**
     * 东风、一汽，急加速时长 单位: S<br/>
     *  {@link SharpAcceleration_DF}计算得来
     **/
    private Integer sharpUpSpeedDuration_DF;
    /**
     *  东风、一汽，急加速次数<br/>
     *  {@link SharpAcceleration_DF}计算得来
     **/
    private Integer sharpUpSpeedNumber_DF;

    /**
     * 东风、一汽，急减速距离 单位:M<br/>
     *  {@link SharpDeceleration_DF}计算得来
     **/
    private Integer sharpDownSpeedMileage_DF;
    /**
     * 东风、一汽，急减速油耗 单位:ML<br/>
     *  {@link SharpDeceleration_DF}计算得来
     **/
    private Integer sharpDownSpeedFuel_DF;
    /**
     *东风、一汽，急减速时长 单位: S<br/>
     *  {@link SharpDeceleration_DF}计算得来
     **/
    private Integer sharpDownSpeedDuration_DF;
    /**
     * 东风、一汽，急减速次数<br/>
     *  {@link SharpDeceleration_DF}计算得来
     **/
    private Integer sharpDownSpeedNumber_DF;

    /**
     * 东风、一汽，急转弯次数<br/>
     *  {@link SharpTurning_DF}计算得来
     **/
    private Integer sharpTurningNumber_DF;

    /**
     * 东风、一汽，超长怠速油耗 单位:ML<br/>
     *  {@link IdleLong_DF}计算得来
     **/
    private Integer longIdleFuel_DF;
    /**
     * 东风、一汽，超长怠速时长 单位:S<br/>
     *  {@link IdleLong_DF}计算得来
     **/
    private Integer longIdleDuration_DF;
    /**
     * 东风、一汽，超长怠速次数<br/>
     *  {@link IdleLong_DF}计算得来
     **/
    private Integer longIdleNumber_DF;

    /**
     *  东风、一汽，冷车运行距离 单位:M<br/>
     *  {@link DrivingCold_DF}计算得来
     **/
    private Integer coldRunningMileage_DF;
    /**
     * 东风、一汽，冷车运行油耗 单位:ML<br/>
     *  {@link DrivingCold_DF}计算得来
     **/
    private Integer coldRunningFuel_DF;
    /**
     * 东风、一汽，冷车运行时长 单位:S<br/>
     *  {@link DrivingCold_DF}计算得来
     **/
    private Integer coldRunningDuration_DF;
    /**
     * 东风、一汽，冷车运行次数<br/>
     *  {@link DrivingCold_DF}计算得来
     **/
    private Integer coldRunningNumber_DF;

    /**
     *  东风、一汽，夜晚开车距离 单位:M<br/>
     *  {@link DrivingNight_DF}计算得来
     **/
    private Integer nightRunningMileage_DF;
    /**
     * 东风、一汽，夜晚开车油耗 单位:ML<br/>
     *  {@link DrivingNight_DF}计算得来
     **/
    private Integer nightRunningFuel_DF;
    /**
     * 东风、一汽，夜晚开车时长 单位: S<br/>
     *  {@link DrivingNight_DF}计算得来
     **/
    private Integer nightRunningDuration_DF;
    /**
     *  东风、一汽，夜晚开车次数<br/>
     *  {@link DrivingNight_DF}计算得来
     **/
    private Integer nightRunningNumber_DF;

    /**
     *  东风、一汽，引擎高转速距离 单位:M<br/>
     *  {@link RotationOver_DF}计算得来
     **/
    private Integer highRotationMileage_DF;
    /**
     * 东风、一汽，引擎高转速油耗 单位:ML<br/>
     *  {@link RotationOver_DF}计算得来
     **/
    private Integer highRotationFuel_DF;
    /**
     * 东风、一汽，引擎高转速时长 单位: S<br/>
     *  {@link RotationOver_DF}计算得来
     **/
    private Integer highRotationDuration_DF;
    /**
     *  东风、一汽，引擎高转速次数<br/>
     *  {@link RotationOver_DF}计算得来
     **/
    private Integer highRotationNumber_DF;

    /**
     *  东风、一汽，大油门距离 单位:M<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer largeGasMileage_DF;
    /**
     * 东风、一汽，大油门油耗 单位:ML<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer largeGasFuel_DF;
    /**
     * 东风、一汽，大油门时长 单位: S<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer largeGasDuration_DF;
    /**
     *  东风、一汽，大油门次数<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer largeGasNumber_DF;
    /**
     *  东风、一汽，全油门距离 单位:M<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer fullGasMileage_DF;
    /**
     * 东风、一汽，全油门油耗 单位:ML<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer fullGasFuel_DF;
    /**
     * 东风、一汽，全油门时长 单位: S<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer fullGasDuration_DF;
    /**
     *  东风、一汽，全油门次数<br/>
     *  {@link GasLargeAndFull_DF}计算得来
     **/
    private Integer fullGasNumber_DF;

    /**
     *  东风、一汽，高速行驶距离 单位:M<br/>
     *  {@link SpeedOver_DF}计算得来
     **/
    private Integer fastSpeedMileage_DF;
    /**
     * 东风、一汽，高速行驶油耗 单位:ML<br/>
     *  {@link SpeedOver_DF}计算得来
     **/
    private Integer fastSpeedFuel_DF;
    /**
     * 东风、一汽，高速行驶时长 单位: S<br/>
     *  {@link SpeedOver_DF}计算得来
     **/
    private Integer fastSpeedDuration_DF;
    /**
     *  东风、一汽，高速行驶次数<br/>
     *  {@link SpeedOver_DF}计算得来
     **/
    private Integer fastSpeedNumber_DF;

    /**
     * 东风、一汽，空挡滑行里程 单位:M<br/>
     *  {@link CoastNeutralGear_DF}计算得来
     **/
    private Integer neutralGearCoastMileage_DF;
    /**
     * 东风、一汽，空挡滑行油耗 单位:ML<br/>
     *  {@link CoastNeutralGear_DF}计算得来
     **/
    private Integer neutralGearCoastFuel_DF;
    /**
     * 东风、一汽，空挡滑行时长 单位：S<br/>
     *  {@link CoastNeutralGear_DF}计算得来
     **/
    private Integer neutralGearCoastDuration_DF;
    /**
     * 东风、一汽，空挡滑行次数<br/>
     *  {@link CoastNeutralGear_DF}计算得来
     **/
    private Integer neutralGearCoastNumber_DF;

    /**
     * 东风、一汽，熄火滑行里程 单位:M<br/>
     *  {@link CoastFlameout_DF}计算得来
     **/
    private Integer flameoutCoastMileage_DF;
    /**
     * 东风、一汽，熄火滑行油耗 单位:ML<br/>
     *  {@link CoastFlameout_DF}计算得来
     **/
    private Integer flameoutCoastFuel_DF;
    /**
     * 东风、一汽，熄火滑行时长 单位：S<br/>
     *  {@link CoastFlameout_DF}计算得来
     **/
    private Integer flameoutCoastDuration_DF;
    /**
     * 东风、一汽，熄火滑行次数<br/>
     *  {@link CoastFlameout_DF}或{@link CoastFlameout_DFN}计算得来
     **/
    private Integer flameoutCoastNumber_DF;

    /**
     * 东风、一汽，AMT载重 单位:kg<br/>
     *  {@link VehicleLoadType_DF}计算得来
     */
    private Integer amtLoad_DF;
    /**
     * 东风、一汽，VECU载重 单位:kg<br/>
     *  {@link VehicleLoadType_DF}计算得来
     */
    private Integer vecuLoad_DF;
    /**
     * 东风、一汽，载重类型，根据AMT载重和VECU载重算出 -1:未识别 0:空载 1:半载 2:满载 3:超载<br/>
     *  {@link VehicleLoadType_DF}计算得来
     */
    private Integer loadType_DF;
    /**
     * 东风、一汽，行程综合得分<br/>
     * 离线计算：TripStatisticUtils.calcTripScore赋值
     */
    private Integer totalScore;
    /**
     * 东风、一汽，行程安全驾驶得分
     * 离线计算：TripStatisticUtils.calcTripScore赋值
     */
    private Integer safeScore;
    /**
     * 东风、一汽，行程经济驾驶得分
     * 离线计算：TripStatisticUtils.calcTripScore赋值
     */
    private Integer ecoScore;

    /**
     * 东风新版，急转弯次数<br/>
     *  {@link SharpTurning_DFN}计算得来
     **/
    private Integer sharpTurningNumber_DFN;
    /**
     *  东风新版，夜晚开车次数<br/>
     *  {@link DrivingNight_DFN}计算得来
     **/
    private Integer nightRunningNumber_DFN;
    /**
     * 东风新版，紧急停车次数<br/>
     *  {@link EmergencyStop_DFN}计算得来
     **/
    private Integer emergencyStopNumber_DFN;

    /**
     *  东风新版，冷车运行距离 单位:M<br/>
     *  {@link DrivingCold_DFN}计算得来
     **/
    private Integer coldRunningMileage_DFN;
    /**
     * 东风新版，冷车运行油耗 单位:ML<br/>
     *  {@link DrivingCold_DFN}计算得来
     **/
    private Integer coldRunningFuel_DFN;
    /**
     * 东风新版，冷车运行时长 单位:S<br/>
     *  {@link DrivingCold_DFN}计算得来
     **/
    private Integer coldRunningDuration_DFN;
    /**
     * 东风新版，冷车运行次数<br/>
     *  {@link DrivingCold_DFN}计算得来
     **/
    private Integer coldRunningNumber_DFN;

    /**
     * 东风新版，非经济行驶里程 单位:M<br/>
     * {@link DrivingEcoNo_DFN}计算得来
     **/
    private Integer noEcoMileage_DFN;
    /**
     * 东风新版，非经济行驶油量 单位:ML<br/>
     * {@link DrivingEcoNo_DFN}计算得来
     **/
    private Integer noEcoFuel_DFN;
    /**
     * 东风新版，非经济行驶时长，单位:S<br/>
     * {@link DrivingEcoNo_DFN}计算得来
     **/
    private Integer noEcoDuration_DFN;
    /**
     * 东风新版，非经济行驶次数<br/>
     *  {@link DrivingEcoNo_DFN}计算得来
     **/
    private Integer noEcoNumber_DFN;
    /**
     * 东风新版，非经济行驶时长占比，单位：%<br/>
     *  {@link DrivingEcoNo_DFN}计算得来
     **/
    private Integer noEcoProportion_DFN;

    /**
     * 青汽、一汽，经济车速累计里程 单位: M
     **/
    private Integer economicSpeedMileage;
    /**
     * 青汽、一汽，经济车速计油耗 单位:ML
     **/
    private Integer economicSpeedFuel;
    /**
     * 青汽、一汽，经济车速累计时长 单位:S
     **/
    private Integer economicSpeedDuration;
    /**
     * 青汽、一汽，车速大于min（90km/h，经济车速区间上限）且非滑行状态的里程，单位:M
     **/
    private Integer economicSpeedNoCoastMileage;

    /**
     * 青汽、一汽，经济行驶非下坡里程 单位:M<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoNoDownMileage;
    /**
     * 青汽、一汽，经济行驶非下坡油量 单位:ML<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoNoDownFuel;
    /**
     * 青汽、一汽，经济行驶非下坡时长 单位:S<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoNoDownDuration;

    /**
     * 青汽、一汽，超经济行驶非下坡里程 单位:M<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoOverNoDownMileage;
    /**
     * 青汽、一汽，超经济行驶非下坡油量 单位:ML<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoOverNoDownFuel;
    /**
     * 青汽、一汽，超经济行驶非下坡时长 单位:S<br/>
     * {@link DrivingEco}计算得来
     **/
    private Integer ecoOverNoDownDuration;

    /**
     * 根据0200结果精准后的百公里油耗 单位:L/100KM
     **/
    public int fuel100KM() {
        return (int) (100 * BigDecimalUtils.divide(tripFuel, tripMileage, 2).doubleValue());
    }

    /**
     * 平均车速(含怠速)，KM/H
     */
    public int avgSpeed() {
        return  ArithmeticUtils.speedMsToKmh( BigDecimalUtils.divide(tripMileage, tripDuration, 4).doubleValue() );
    }

    /**
     * 不含怠速平均速度 单位:KM/H
     */
    public int avgSpeedNoIdle() {
        int duration = Math.max(Optional.ofNullable(tripDuration).orElse(0) - Optional.ofNullable(idleDuration).orElse(0), 0);
        return ArithmeticUtils.speedMsToKmh( BigDecimalUtils.divide(tripMileage, duration, 4).doubleValue() );
    }

    public int ecoProportion(){
        if(null==tripDuration || 0==tripDuration){
            return 0;
        }
        return (int) (100 * BigDecimal.valueOf(Optional.ofNullable(ecoDrivingDuration).orElse(0)).divide(BigDecimal.valueOf(tripDuration), 2, BigDecimal.ROUND_UP).doubleValue());
    }

    /**
     *  刹车次数 "hsb_number+csb_number"'
     */
    public int brakeTimes(){
        return Optional.ofNullable(hsbNumber).orElse(0) + Optional.ofNullable(csbNumber).orElse(0);
    }

    /**
     * 东风，行程百公里急加速次数
     */
    public int sharpUpSpeedNumber100KM(){
        return (int) (100000 * BigDecimalUtils.divide(sharpUpSpeedNumber_DF, tripMileage, 6).doubleValue());
    }

    /**
     * 东风，行程百公里急减速次数
     */
    public int sharpDownSpeedNumber100KM(){
        return (int) (100000 * BigDecimalUtils.divide(sharpDownSpeedNumber_DF, tripMileage, 6).doubleValue());
    }

    /**
     * 东风，行程百公里急转弯次数
     */
    public int sharpTurningNumber100KM(){
        return (int) (100000 * BigDecimalUtils.divide(sharpTurningNumber_DFN, tripMileage, 6).doubleValue());
    }

    /**
     * 东风，行程百公里紧急制动次数
     */
    public int emergencyStopNumber100KM(){
        return (int) (100000 * BigDecimalUtils.divide(emergencyStopNumber_DFN, tripMileage, 6).doubleValue());
    }

    /**
     * 东风，行程百公里熄火滑行次数
     */
    public int flameoutCoastNumber100KM(){
        return (int) (100000 * BigDecimalUtils.divide(flameoutCoastNumber_DF, tripMileage, 6).doubleValue());
    }

    /**
     * 东风，行程每小时超速时间，单位s
     */
    public int speedOverDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(fastSpeedDuration_DF, tripDuration, 4).doubleValue());
    }

    /**
     * 东风，行程每小时超长怠速时间，单位s
     */
    public int longIdleDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(longIdleDuration_DF, tripDuration, 4).doubleValue());
    }

    /**
     * 东风，行程每小时大油门时间，单位s
     */
    public int largeGasDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(largeGasDuration_DF, tripDuration, 4).doubleValue());
    }

    /**
     * 东风，行程每小时非经济转速时间，单位s
     */
    public int noEcoDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(noEcoDuration_DFN, tripDuration, 4).doubleValue());
    }

    /**
     * 东风，行程每小时空档滑行时间，单位s
     */
    public int neutralGearCoastDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(neutralGearCoastDuration_DF, tripDuration, 4).doubleValue());
    }
    /**
     * 东风，行程每小时疲劳驾驶时间，单位s
     */
    public int fatigueDrivingDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(fatigueDrivingDuration, tripDuration, 4).doubleValue());
    }
    /**
     * 东风，行程每小时夜晚行车时间，单位s
     */
    public int nightRunningDurationHourly(){
        return (int) (3600 * BigDecimalUtils.divide(nightRunningDuration_DF, tripDuration, 4).doubleValue());
    }

    /**
     * 怠速工况油量 单位:ML<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer idleConditionFuel;
    /**
     * 怠速工况时长 单位:S<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer idleConditionDuration;

    /**
     * 低速工况油量 单位:ML<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionFuel;
    /**
     * 低速工况时长 单位:S<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionDuration;
    /**
     * 低速工况车速平均值，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionSpeedAvg;
    /**
     * 低速工况车速标准差，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionSpeedStDev;
    /**
     * 低速工况加速度平均值，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionAccelerationAvg;
    /**
     * 低速工况加速度标准差，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionAccelerationStDev;
    /**
     * 低速工况发动机转速平均值，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionRpmAvg;
    /**
     * 低速工况发动机转速标准差，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionRpmStDev;
    /**
     * 低速工况油门开度平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionThrottleAvg;
    /**
     *  低速工况油门开度标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionThrottleStDev;
    /**
     * 低速工况油门开度变化率平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionThrottleRateAvg;
    /**
     *  低速工况油门开度变化率标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer lowConditionThrottleRateStDev;

    /**
     * 加速工况油量 单位:ML<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionFuel;
    /**
     * 加速工况时长 单位:S<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionDuration;
    /**
     * 加速工况车速平均值，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionSpeedAvg;
    /**
     * 加速工况车速标准差，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionSpeedStDev;
    /**
     * 加速工况加速度平均值，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionAccelerationAvg;
    /**
     * 加速工况加速度标准差，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionAccelerationStDev;
    /**
     * 加速工况发动机转速平均值，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionRpmAvg;
    /**
     * 加速工况发动机转速标准差，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionRpmStDev;
    /**
     * 加速工况油门开度平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionThrottleAvg;
    /**
     *  加速工况油门开度标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionThrottleStDev;
    /**
     * 加速工况油门开度变化率平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionThrottleRateAvg;
    /**
     *  加速工况油门开度变化率标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer accelerateConditionThrottleRateStDev;

    /**
     * 减速工况油量 单位:ML<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionFuel;
    /**
     * 减速工况时长 单位:S<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionDuration;
    /**
     * 减速工况车速平均值，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionSpeedAvg;
    /**
     * 减速工况车速标准差，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionSpeedStDev;
    /**
     * 减速工况减速度平均值，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionAccelerationAvg;
    /**
     * 减速工况减速度标准差，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer decelerateConditionAccelerationStDev;

    /**
     * 匀速工况油量 单位:ML<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionFuel;
    /**
     * 匀速工况时长 单位:S<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionDuration;
    /**
     * 匀速工况车速平均值，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionSpeedAvg;
    /**
     * 匀速工况车速标准差，扩大100倍 单位:km/h<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionSpeedStDev;
    /**
     * 匀速工况匀速度平均值，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionAccelerationAvg;
    /**
     * 匀速工况匀速度标准差，扩大100倍 单位:m/𝑠2<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionAccelerationStDev;
    /**
     * 匀速工况发动机转速平均值，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionRpmAvg;
    /**
     * 匀速工况发动机转速标准差，扩大100倍 单位:rpm转每分钟<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionRpmStDev;
    /**
     * 匀速工况油门开度平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionThrottleAvg;
    /**
     *  匀速工况油门开度标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionThrottleStDev;
    /**
     * 匀速工况油门开度变化率平均值，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionThrottleRateAvg;
    /**
     *  匀速工况油门开度变化率标准差，扩大100倍 单位:%<br/>
     * {@link WorkingCondition_DFN}计算得来
     **/
    private Integer uniformConditionThrottleRateStDev;

}
